package com.smile.config;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.annotation.Order;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Enumeration;

@Configuration // 一定不要忽略此注解
//@Order(Integer.MIN_VALUE)
public class CorsConfig implements WebMvcConfigurer {
//    @Override
//    public void addInterceptors(InterceptorRegistry registry) {
//        registry.addInterceptor(new HandlerInterceptor() {
//            @Override
//            public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
//                System.out.println("uri:"+request.getRequestURI());
//                Enumeration<String> headerNames = request.getHeaderNames();
//                while (headerNames.hasMoreElements()) {
//                    String headerName = headerNames.nextElement();
//                    String headerValue = request.getHeader(headerName);
//                    System.out.println(headerName + ":" + headerValue);
//                }
//
//                return true;
//            }
//        });
//    }

//    @Value("${cors.status}")
//    private Boolean corsStatus = Boolean.FALSE;
//
//    @Override
//    public void addCorsMappings(CorsRegistry registry) {
//
//        if (corsStatus) {
//
//            registry.addMapping("/**")
//                    // 所有接口
////                    .allowCredentials(true) // 是否发送 Cookie
//                    .allowedOriginPatterns("*") // 支持域
//                    .allowedMethods(new String[]{"GET", "POST", "PUT", "DELETE"}) // 支持方法
//                    .allowedHeaders("*")
//                    .exposedHeaders("*");
//        }
//    }

}
